У княгине Ольги есть проблема с датами. Русские летописи не сообщают год рождения Ольги, однако поздняя Степенная книга (XVI век) утверждает, что скончалась она в возрасте около 80 лет.
Ольге на момент брака было 10 лет. На основании этого много учёных (Н. М. Карамзин, Л. Морозова, Л. Войтович) высчитали дату её рождения — 893 год.
Правда, эту дату ставит под сомнение дата рождения старшего сына Ольги, Святослава (около 938—943), так как Ольге на момент рождения сына должно было бы быть 45—50 лет, что кажется невероятным.

Согласно «Повести временных лет», Ольга была родом из Пскова.

Есть легенда: случайной встрече с Игорем на переправе под Псковом. Князь охотился в тех местах. Переправляясь через реку на лодке, он заметил, что перевозчицей была юная девушка. Игорь тотчас же «разгорѣ́сѧ жела́нїемъ» и стал приставать к ней, однако получил в ответ достойную отповедь:

Зачем смущаешь меня, княже, нескромными словами? Пусть я молода и незнатна, и одна здесь, но знай: лучше для меня броситься в реку, чем стерпеть поругание.
О случайном знакомстве Игорь вспомнил, когда пришло время искать себе невесту, и послал Олега за полюбившейся девушкой, не желая никакой другой жены.

После свадьбы имя Ольги упоминается в очередной раз только через 40 лет, в русско-византийском договоре 944 года.

Согласно летописи, в 945 году князь Игорь погибает от рук древлян после неоднократного взимания с них дани. Княжичу Святославу тогда было три года, поэтому фактическим правителем Руси в 945 году стала вдовствующая княгиня Ольга. Дружина Игоря подчинилась ей, признав Ольгу представителем законного наследника стола. Решительный образ действий княгини-матери в отношении древлян также мог склонить дружинников в её пользу.

Древляне после убийства Игоря прислали к его вдове Ольге сватов звать её замуж за своего князя Мала. Княгиня последовательно расправилась со старейшинами древлян, а затем привела к покорности их народ. Древнерусский летописец подробно излагает месть Ольги за смерть мужа:

Сваты, 20 древлян, прибыли в ладье, которую киевляне отнесли и бросили в глубокую яму на дворе терема Ольги. Сватов-послов закопали живьём вместе с ладьёй.

И, склонившись к яме, спросила их Ольга: «Хороша ли вам честь?» Они же ответили: «Горше нам Игоревой смерти». И повелела засыпать их живыми; и засыпали их.

Ольга попросила для уважения прислать к ней новых послов из лучших мужей, что и было с охотой исполнено древлянами. Посольство из знатных древлян сожгли в бане, пока те мылись, готовясь к встрече с княгиней.

Княгиня с небольшой дружиной приехала в земли древлян, чтобы по обычаю справить тризну на могиле мужа. Опоив во время тризны древлян, Ольга велела рубить их. Летопись сообщает о пяти тысячах перебитых древлян.

В 946 году Ольга вышла с войском в поход на древлян. Она взяла в осаду город Искоростень и запросила у жителей дань местных птиц. После чего она привязала к лапам птиц зажжённую паклю с серой. Те вернулись в свои дома и сожгли город.

После расправы с древлянами Ольга стала править Русью до совершеннолетия Святослава, но и после этого она оставалась фактической правительницей, так как её сын большую часть времени проводил в военных походах и не уделял внимания управлению государством.

В 945 году Ольга установила размеры «полюдья» — податей в пользу Киева, сроки и периодичность их уплаты. Ольга установила систему «погостов» — центров торговли и обмена, в которых более упорядоченно происходил сбор податей. Летописи сообщают о поездке Ольги в 947 году в новгородские и псковские земли и назначении там уроки (дань), после чего вернулась к сыну Святославу в Киев.

Следующим деянием Ольги, отмеченным в ПВЛ, является её крещение в 955 году в Константинополе. По возвращении в Киев Ольга, принявшая в крещении имя Елена, пробовала приобщить Святослава к христианству, однако «он и не думал прислушаться к этому; но если кто собирался креститься, то не запрещал, а только насмехался над тем». Более того, Святослав гневался на мать за её уговоры, опасаясь потерять уважение дружины.

Есть упоминания в Византийских источниках посольства Ольги в Константинополь.

Дата и обстоятельства крещения остаются неясными. Согласно Повести временных лет, это произошло в 955 году в Константинополе, Ольгу лично крестили император Константин VII Багрянородный с патриархом (Феофилактом): «И было наречено ей в крещении имя Елена, как и древней царице-матери императора Константина I». Повесть временных лет и житие украшают обстоятельства крещения историей, как мудрая Ольга перехитрила византийского царя. Тот, подивившись её разуму и красоте, захотел взять Ольгу в жёны, но княгиня отвергла притязания, заметив, что не подобает христианам за язычников свататься. Тогда-то и крестили её император с патриархом. Когда царь снова стал домогаться княгини, та указала на то, что она теперь приходится крёстной дочерью императору. Тогда тот богато одарил её и отпустил домой.

Однако Константин нигде не упомянул о крещении Ольги, как и о целях её визита. В свите княгини был назван некий священник Григорий, на основании чего некоторые историки (в частности, академик Борис Рыбаков) предполагают, что Ольга посетила Константинополь уже крещёной. В таком случае возникает вопрос, почему Константин именует княгиню её языческим именем, а не Еленой.

Согласно большинству источников, княгиня Ольга приняла крещение в Константинополе осенью 957 года, и крестили её, вероятно, Роман II, сын и соправитель императора Константина VII, и патриарх Полиевкт.

Когда в 968 году печенеги впервые совершили набег на Русские земли, Ольга с детьми Святослава заперлась в Киеве. Вернувшийся из похода на Болгарию Святослав снял осаду, но не пожелал оставаться в Киеве надолго. Когда на следующий год он собирался уйти обратно в Переяславец, Ольга удержала его:

«Видишь — я больна; куда хочешь уйти от меня?» — ибо она уже разболелась. И сказала: «Когда похоронишь меня, — отправляйся куда захочешь». Через три дня Ольга умерла, и плакали по ней плачем великим сын её, и внуки её, и все люди, и понесли, и похоронили её на выбранном месте, Ольга же завещала не совершать по ней тризны, так как имела при себе священника — тот и похоронил блаженную Ольгу.